
Linux进程及作业管理
CentOS 5:  SysV init
CentOS 6：upstart
CentOS 7：systemd
==========================================

------------------------------------------------------------------------------
###：pstree：显示进程树
------------------------------------------------------------------------------
###：ps：
DESCRIPTION：
            /proc/：内核中的状态信息；
                内核参数：
                    可设置其值从而调整内核运行特性的参数；/proc/sys/
                    状态变量：其用于输出内核中统计信息或状态信息，仅用于查看；

                参数：模拟成文件系统类型；

             /proc/#：进程（ #：PID ）
SELECTION：
    选项有三种风格：
        1   UNIX options, which may be grouped and must be preceded by a dash.
        2   BSD options, which may be grouped and must not be used with a dash.
        3   GNU long options, which are preceded by two dashes.
    选项：
        a：所有与终端相关的进程。
        x：所有与终端无关的进程。
        u：以用户为中心组织进程状态信息显示。
        组合：aux
            ~]$ ps -aux
                    USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
            USER：用户
            PID：进程号
            %CPU：占用cpu百分比
            %MEM：
            VSZ：虚拟内存集
            RSS：常驻内存集
            TTY：
            STAT：
                R：running
                S：interruptable sleeping
                D：uninterruptable sleeping
                T：Stopped
                Z：zombie
                +：前台进程
                l：多线程进程
                N：低优先级进程
                <：高优先级进程
                s：session leader 
            START：
            TIME：
            COMMAND：

        -e：显示所有进程
        -f：显示完整格式的进程信息
        组合：-ef
                ~]$ ps -ef
                    UID         PID   PPID  C STIME TTY          TIME CMD

        -F：显示完整格式的进程信息
                ~]$ ps -F
                UID         PID   PPID  C    SZ   RSS PSR STIME TTY          TIME CMD
            C： cpu utilization
            PSR：运行于哪颗CPU之上

        -H：以层级结构显示进程的相关信息；
        组合：-eFH
                ~]$ ps -efH
                        UID         PID   PPID  C STIME TTY          TIME CMD

        -o|o：自定义选项（逗号隔开）
            常用的field：pid, ni, pri, psr, pcpu, stat, comm, tty, ppid, rtprio
                    ni：nice值
                    priority：priority, 优先级
                    rtprio：real time priority，实时优先级

        组合：-eo, axo
------------------------------------------------------------------------------
###：pgrep, pkill - look up or signal processes based on name and other attributes
SYNOPSIS：
       pgrep [options] pattern
       pkill [options] pattern
OPTIONS：
    -u uid：effective user
    -U uid：read user
    -t  TERMINAL：与指定的终端相关的进程。
    -l：显示进程名。
    -a：显示完整格式的进程名。
    -P pid：显示此进程的子进程。
------------------------------------------------------------------------------
###：pidof： 根据进程名，取其pid
------------------------------------------------------------------------------
###：top：显示Linux进程
DESCRIPTION：
    排序：
        P：以占据CPU百分比排序。
        M：以占据内存百分比排序。
        T：累积占用CPU时间排序。

    首部信息：
        l：uptime信息
        t：tasks及cpu信息
        m：内存信息

        q：退出命令
        s：修改刷新时间间隔
        k：终止指定的进程

    OPTIONS：
        -d #：指定刷新时间间隔，默认为3秒。
        -b：以批次方式显示。
        -n #：显示多少批次。
------------------------------------------------------------------------------
###：uptime：显示系统时间、运行时长及平均负载
DESCRIPTION：
        过去1分钟、5分钟和15分钟的平均负载。
        等待运行的进程队列的长度。
OPTIONS：
            ~]$ uptime
                16:14:51 up  2:05,  2 users,  load average: 0.25, 0.26, 0.18
------------------------------------------------------------------------------
###：htop：进程交互接口
SYNOPSIS：
       htop [-dChusv]
OPTIONS：
        -d #：指定延迟时间间隔。
        -u UserName：仅显示指定用户的进程。
        -s COLUME：以指定字段进行排序。
INTERACTIVE COMMANDS：
        l：显示选定的进程打开的文件列表。
        s：跟踪选定的进程的系统调用。
        t：以层级关系显示各进程状态。
        a：将选定的进程绑定至某指定的CPU核心。
------------------------------------------------------------------------------
###：vmstat：显示有效的内存状态
DESCRIPTION：
        procs：
            r：等待运行的进程的个数；CPU上等待运行的任务的队列长度；
            b：处于不可中断睡眠态的进程个数；被阻塞的任务队列的长度；
        memory：
            swpd：交换内存使用总量；
            free：空闲的物理内存总量；
            buffer：用于buffer的内存总量；
            cache：用于cache的内存总量；
        swap
            si：数据进入swap中的数据速率（kb/s）
            so：数据离开swap的速率(kb/s)
        io
            bi：从块设备读入数据到系统的速度（kb/s）
            bo：保存数据至块设备的速率（kb/s）
        system
            in：interrupts，中断速率；
            cs：context switch, 上下文 切换的速率；
        cpu 
            us： user space
            sy：system
            id：idle
            wa：wait 
            st: stolen

SYNOPSIS：
        -s：显示内存统计数据；
------------------------------------------------------------------------------
###：pmap：显示进程内存地图
SYNOPSIS
       pmap [options] pid [...]
        另一种查看方式：cat  /proc/PID/maps
OPTIONS：
        -x：显示详细格式的信息。
------------------------------------------------------------------------------
###：glances：- A cross-platform curses-based monitoring tool
SYNOPSIS
       glances [-bdehmnrsvyz1] [-B bind] [-c server] [-C conffile] [-p port] [-P password]
       [--password] [-t refresh] [-f file] [-o output]
OPTIONS：
        -b：以Byte为单位显示网上数据速率。
        -d：关闭磁盘I/O模块。
        -m：关闭mount模块。
        -n：关闭network模块。
        -t #：刷新时间间隔。
        -1：每个cpu的相关数据单独显示。
        -o {HTML|CSV}：输出格式。
        -f  /PATH/TO/SOMEDIR：设定输出文件的位置。

        C/S模式下运行glances命令：
            服务模式：
                glances  -s  -B  IPADDR
                IPADDR：本机的某地址，用于监听。
                
            客户端模式：
                glances  -c  IPADDR
                IPADDR：是远程服务器的地址。
------------------------------------------------------------------------------
###：dstat：versatile tool for generating system resource statistics
SYNOPSIS
       dstat [-afv] [options..] [delay [count]]
OPTIONS：
        -c， --cpu：显示cpu相关信息；
            -C #,#,...,total
        -d, --disk：显示磁盘的相关信息
            -D sda,sdb,...,tobal
        -g：显示page相关的速率数据；
        -m：Memory的相关统计数据
        -n：Interface的相关统计数据；
        -p：显示process的相关统计数据；
        -r：显示io请求的相关的统计数据；
        -s：显示swapped的相关统计数据；
        
        --tcp 
        --udp
        --raw 
        --socket 
        
        --ipc 
        
        --top-cpu：显示最占用CPU的进程。
        --top-io：最占用io的进程。
        --top-mem：最占用内存的进程。
        --top-lantency：延迟最大的进程。
------------------------------------------------------------------------------
###：kill：结束一个进程
SYNOPSIS：
       kill [-s signal|-p] [-q sigval] [-a] [--] pid...
       kill -l [signal]
OPTIONS：
       -l, --list [signal]：显示当前系统可用信号
                每个信号的标识方法有三种：
                    1) 信号的数字标识；
                    2) 信号的完整名称；
                    3) 信号的简写名称；
                    
        向进程发信号：
                kill  [-s signal|-SIGNAL]  pid...
                常用信号：
                    1） SIGHUP：无须关闭进程而让其重读配置文件；
                    2）SIGINT：终止正在运行的进程，相当于Ctrl+c
                    9）SIGKILL：杀死运行中的进程；
                    15）SIGTERM：终止运行中的进程；
                    18）SIGCONT：
                    19）SIGSTOP：
------------------------------------------------------------------------------
###：killall：杀死与名字相关的进程
SYNOPSIS：
        killall  [-SIGNAL]  program
------------------------------------------------------------------------------



------------------------------------------------------------------------------
job：Linux系统作业控制
        前台作业(foregroud)：通过终端启动，且启动后会一直占据终端。
        后台作业(backgroud)：可以通过终端启动，但启动后即转入后台运行。
            
        （1）Ctrl+z
                运行中的作业送往后台，作业转为停止态
        （2）COMMAND &
                未启动的作业送往后台，作业为停止态
        （3）nohup  COMMAND  &
                未启动的作业送往后台，作业为停止态。但是脱离了与终端关系（关闭终端不会关闭作业）

        jobs：查看所有的作业

        可实现作业控制的常用命令：
            （1） fg  [[%]JOB_NUM]：把指定的作业调回前台。
            （2） bg  [[%]JOB_NUM]：让送往后台的作业在后台继续运行。
            （3） kill  %JOB_NUM：终止指定的作业。
 ------------------------------------------------------------------------------
###：nice：调整程序优先级
SYNOPSIS
       nice [OPTION] [COMMAND [ARG]...]
DESCRIPTION：
        可通过nice值调整的优先级范围：100-139
            分别对应于：-20, 19
            
        进程启动时，其nice值默认为0，其优先级是120；
OPTIONS：
       -n, --adjustment=N：指定nice值。

        注意：仅管理员可调低nice值； 
------------------------------------------------------------------------------
###：renice：改变进程的优先级 
SYNOPSIS：
       renice [-n] priority [-gpu] identifier...
OPTIONS：
       [-n]  NICE  PID...
------------------------------------------------------------------------------

